<?php
class class_ABMPartidas
{
	private $_db; 
	function __construct(){
		$this->config();
	}
	
	function method_getLista($params, $error){
		$this->_db->setQuery("SELECT partidas.*, DATE_FORMAT(partidas.fecha_compra,'%d/%m/%Y') AS fecha_compra, DATE_FORMAT(partidas.vencimiento,'%d/%m/%Y') AS vencimiento, articulos.descripcion AS articulo, razones_sociales.descripcion AS proveedor, rubros.descripcion AS rubro, marcas.descripcion AS marca FROM partidas LEFT JOIN articulos ON partidas.cod_articulo = articulos.cod_articulo LEFT JOIN razones_sociales ON partidas.cod_razon_social = razones_sociales.cod_razon_social LEFT JOIN rubros ON rubros.cod_rubro = articulos.cod_rubro LEFT JOIN marcas ON marcas.cod_marca = articulos.cod_marca ORDER BY fecha_compra DESC");
		$this->_db->alter();
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		$result = array();
		$regs = $this->_db->loadResult();
		$row = array();
    	FOREACH ($regs as $reg){
			array_push($row, $reg->cod_partida);
			array_push($row, $reg->fecha_compra);
			array_push($row, $reg->rubro);
			array_push($row, $reg->articulo);
			array_push($row, $reg->marca);			
			array_push($row, $reg->vencimiento);
			array_push($row, $reg->proveedor);
			array_push($row, $reg->cantidad_inicial);
			array_push($row, $reg->cantidad_disponible);
			array_push($row, $reg->importe);
			array_push($row, $reg->nro_factura);
			array_push($result, $row);
			$row = array();
		}
		return $result;
    }
    
	function method_btnBorrar($params, $error){
        if (count($params) != 1){ $error->SetError(JsonRpcError_ParameterMismatch, "Expected 1 parameter; got " . count($params)); return $error; }
        $this->_db->setQuery("DELETE FROM partidas WHERE cod_partida = '" . $params[0] . "'");
        $this->_db->alter();
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		return true;
    }
    
	function method_btnModificar($params, $error){
        if (count($params) != 1){ $error->SetError(JsonRpcError_ParameterMismatch, "Expected 1 parameter; got " . count($params)); return $error; }
		$this->_db->setQuery("SELECT * FROM partidas WHERE cod_partida = '" . $params[0] . "' LIMIT 1");
		$this->_db->alter();
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		$reg = $this->_db->loadResult();
		return $reg[0];
    }
    
	function method_opAlta($params, $error) {
        if (count($params) != 1) { $error->SetError(JsonRpcError_ParameterMismatch, "Expected 1 parameter; got " . count($params)); return $error; }
        $cantidad = $params[0]->cantidad_inicial;
        $this->_db->setQuery("INSERT INTO partidas(cod_partida, cod_articulo, cantidad_inicial, cantidad_disponible, vencimiento, importe, nro_factura, cod_razon_social, fecha_compra) VALUES (NULL, '" . $params[0]->cod_articulo . "', '" . $cantidad . "', '" . $cantidad . "', '" . owFunciones::DateToSQL($params[0]->vencimiento) . "', '" . $params[0]->importe . "', '" . $params[0]->nro_factura . "', '" . $params[0]->cod_razon_social . "', '" . owFunciones::DateToSQL($params[0]->fecha_compra) . "')");
                //$this->_db->setQuery("INSERT INTO partidas(cod_partida, cod_articulo, cantidad_inicial, cantidad_disponible, vencimiento, importe, nro_factura, cod_razon_social, fecha_compra) VALUES (NULL, '" . $params[0]->cod_articulo . "', '" . $params[0]->cantidad_inicial . "', '" . $params[0]->cantidad_incial . "', '" . owFunciones::DateToSQL($params[0]->vencimiento) . "', '" . $params[0]->importe . "', '" . $params[0]->nro_factura . "', '" . $params[0]->cod_razon_social . "', '" . owFunciones::DateToSQL($params[0]->fecha_compra) . "')");
        $this->_db->alter();
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		return true;
    }
    
    function method_getProveedores($params, $error){
		$this->_db->setQuery("SELECT cod_razon_social AS value, descripcion AS label FROM razones_sociales");
		$this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		$regs = $this->_db->loadResult();
		$result->values = $regs;
		$result->nullValue = true;
		return $result;
    }    
    function method_getArticulos($params, $error){
		$this->_db->setQuery("
			SELECT articulos.cod_articulo AS value,
			CONCAT(articulos.descripcion,' - ', marcas.descripcion) AS label 
			FROM articulos
			LEFT JOIN marcas ON marcas.cod_marca = articulos.cod_marca
			");
		$this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		$regs = $this->_db->loadResult();
		$result->values = $regs;
		$result->nullValue = true;
		return $result;
    }
        
	private function config(){
		require_once("conexion.php");
		require_once("DataBase.php");
		$this->_db = new DataBase($SERVIDOR,$USUARIO,$PASSWORD,$BASE);
		mysql_query("SET NAMES utf8");
	}
}
?>